<?php

namespace app\admin\controller;

use think\Request;
use app\admin\model\AdminAdvertisement as AdminAdvertisementModel;
use think\Db;

class AdminAdvertisement extends AdminController
{
    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {
        // 广告列表
        // $res = AdminAdvertisementModel::where(['level' => 1])->select();  // 带条件
        $res = AdminAdvertisementModel::select();

        // 模板渲染
        return $this->assign('res',$res)->fetch('adminadvertisement/index');
    }

    /**
     * 显示创建广告资源页.
     *
     * @return \think\Response
     */
    public function create()
    {
        return $this->fetch('adminadvertisement/add');
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        // 依赖注入的方式
        $post = $request->post();
        //商品图片上传
        $file = $request->file("adImages");
        // var_dump($post,$file);die;
        if ( $file ) {
            //移动到框架应用根目录/public/uploads/goodsimg 目录下
            $info = $file->validate(['size'=>1048576,'ext'=>'jpg,png,gif'])->move(ROOT_PATH . 'public' . DS . 'uploads/advertisement');
            if($info){
                // 变化过的文件名称
                $img =  $info->getSaveName();

            }else{
                // 上传失败获取错误信息
                $title = $file->getError();
                $this->error($title); die;
            }

            $post['adImages'] = $img;
        }
        
        $post['createTime'] = date('Y-m-d H:i:s');
        // var_dump($post);die;
        // 实例化Model
        $Advertisement = new AdminAdvertisementModel();
        // 传入数据到Model中
        $Advertisement->data($post);
        // 过滤非数据表的字段,并写入数据, 返回写入记录数量
        $result = $Advertisement->allowField(true)->save();
        // 判断跳转
        if ($result > 0) {
            return $this->success('添加成功了', url('admin/admin_advertisement/index'));
        } else {
            return $this->error('添加失败了');
        }
    }

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($adId)
    {
        //
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function edit($adId)
    {
        $info = Db::name('Advertisement')->where('adId',$adId)->find();
        // var_dump($info);die;
        return $this->assign('info',$info)->fetch('adminadvertisement/edit');
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update(Request $request, $adId)
    {
        $post = $request->post();
        // var_dump($post);die;
        $file = $request->file("adImages");
        // var_dump($post,$file);die;
        if ($file) {
            // 修改文件图片前 删除旧文件
            $adImages = AdminAdvertisementModel::field('adImages')->where('adId',$adId)->find();
            $pathurl = ROOT_PATH . 'public' . DS . 'uploads/advertisement/'.$adImages['adImages'];
            $dir = substr($adImages['adImages'],0,8);
            $pathdir = ROOT_PATH . 'public' . DS . 'uploads/advertisement/'.$dir;
            if ( is_file( $pathurl ) ) {
                unlink( $pathurl );
                if( count(scandir($pathdir)) == 2){ //目录为空,=2是因为.和..存在
                    rmdir($pathdir); // 删除空目录 
                } 
            }
            //移动到框架应用根目录/public/uploads/goodsimg 目录下
            $info = $file->validate(['size'=>1048576,'ext'=>'jpg,png,gif'])->move(ROOT_PATH . 'public' . DS . 'uploads/advertisement');
            if($info){
                // 变化过的文件名称
                $img =  $info->getSaveName();

            }else{
                // 上传失败获取错误信息
                $title = $file->getError();
                $this->error($title); die;
            }
            $post['adImages'] = $img;
        }
        // var_dump($post);die;

        $result = AdminAdvertisementModel::where('adId', $adId)->update($post);
        // var_dump($result);die;

        // 判断跳转
        if ($result > 0) {
            return $this->success('广告更新成功', url('admin/admin_advertisement/index'));
        } else {
            return $this->error('广告更新失败');
        }
    }

    /**
     * 删除指定资源
     *
     * @param  int  $AdvertisementId
     * @return \think\Response
     */
    public function delete($adId)
    {
        $result = AdminAdvertisementModel::get($adId)->delete();

        if ($result > 0) {
            $info['status'] = true;
            $info['adId'] = $adId;
            $info['info'] = 'ID为'.$adId.'的广告删除成功!';
        } else {
            $info['status'] = false;
            $info['adId'] = $adId;
            $info['info'] = 'ID为'.$AdvertisementId.'的广告删除失败!';
        }
        return json($info);
    }

}
